Migrating to git submodules for mspec and rubyspecs

1 view
Skip to first unread message

Brian Ford

unread,
May 8, 2008, 8:42:32 PM5/8/08
to rubinius-dev
Hi all,

We've begun the migration to using submodules for the RBX_ROOT/mspec
and RBX_ROOT/spec/ruby directories. I've just pushed the change for
mspec. If you have any trouble with complaints from git about the
mspec directory after doing:

rake git:update
rake (build)

then in your branch do (make sure you do not have local changes you
want to keep!):

rm -rf mspec
git reset --hard
rake build

I've changed the rake build task to depend on spec:init which itself
depends on mspec:init which should set all this up correctly. Once
more of the transition is complete, I'll be updating the docs on
lighthouse and at rubyspec.org.

Thanks for your patience during the transition. If you run into
trouble, please post here or hop over to the #rubinius channel on
freenode.

Cheers,
Brian

rue

unread,
May 8, 2008, 9:42:42 PM5/8/08
to rubinius-dev
Brian Ford wrote:
> Hi all,
>
> We've begun the migration to using submodules for the RBX_ROOT/mspec
> and RBX_ROOT/spec/ruby directories.
> <snip />

Before going further, I wanted to re-restate that there
will be helpers to make the new process pretty much
transparent :)

However, for those who like to know how things work in
the background (or, like myself, prefer using git directly
outside of our Rake tasks), here is a writeup of what the
submodule handling looks like _without any wrappers_
(I wrote it a while back so let me know if it needs any
corrections):

http://journal.kittensoft.org/2008/3/13/splitting-the-specs-to-a-separate-project-with-git-submodules

--
Eero (rue)

Brian Ford

unread,
May 10, 2008, 2:20:09 AM5/10/08
to rubinius-dev
Hello again,

On May 8, 5:42 pm, Brian Ford <bri...@gmail.com> wrote:
> Hi all,
>
> We've begun the migration to using submodules for the RBX_ROOT/mspec
> and RBX_ROOT/spec/ruby directories.

I've finished pushing the changes for this migration. Please take note
of the following:

* the mspec directory is now a submodule pointed at git://github.com/brixen/mspec.git
* the spec/frozen directory is a submodule pointed at
git://github.com/brixen/rubyspec.git
* the spec/ruby directory is a _clone_ of git://github.com/brixen/rubyspec.git
* please have a read of http://rubinius.lighthouseapp.com/projects/5089/howto-develop-with-a-separate-rubyspec-repo
* if you are a rubinius committer, please let me know your Github
username
* once you have your rubyspec repo commit bit, run rake spec:committer
to change the git url in the spec/ruby clone (more info in the
lighthouse link above).

Again, thanks for the patience while we work out any kinks and
streamline any rough spots we find.

Cheers,
Brian

Brian Ford

unread,
May 10, 2008, 2:57:19 AM5/10/08
to rubinius-dev
On May 9, 11:20 pm, Brian Ford <bri...@gmail.com> wrote:
>
> I've finished pushing the changes for this migration. Please take note
> of the following:
>
> * the mspec directory is now a submodule pointed at git://github.com/brixen/mspec.git
> * the spec/frozen directory is a submodule pointed at
> git://github.com/brixen/rubyspec.git
> * the spec/ruby directory is a _clone_ of git://github.com/brixen/rubyspec.git

This is something of a gotcha in the new organization. The thing to
keep in mind is that spec/frozen is now the basis of our CI process
for the rubyspec sources. So, spec/tags/ruby has been moved to spec/
tags/frozen. To run the CI specs, think spec/frozen instead of spec/
ruby. Here are some examples:

To run a subset of the CI specs (e.g. the Array specs):

bin/mspec ci spec/frozen/1.8/core/array

To update the tags for the CI specs

bin/mspec tag spec/frozen/1.8/library/complex
bin/mspec tag --del fails spec/ruby/1.8/library/openssl

Thanks to Wilson for pointing this out.

Cheers,
Brian

Brian Ford

unread,
May 12, 2008, 6:05:52 PM5/12/08
to rubinius-dev
On May 9, 11:20 pm, Brian Ford <bri...@gmail.com> wrote:
>
> I've finished pushing the changes for this migration. Please take note
> of the following:
>
> * the mspec directory is now a submodule pointed at git://github.com/brixen/mspec.git
> * the spec/frozen directory is a submodule pointed at
> git://github.com/brixen/rubyspec.git
> * the spec/ruby directory is a _clone_ of git://github.com/brixen/rubyspec.git
> * please have a read ofhttp://rubinius.lighthouseapp.com/projects/5089/howto-develop-with-a-...
> * if you are a rubinius committer, please let me know your Github
> username
> * once you have your rubyspec repo commit bit, run rake spec:committer
> to change the git url in the spec/ruby clone (more info in the
> lighthouse link above).

I've just tweaked this process a bit. Initially, we had spec:update
happening whenever you ran rake build. However, this is a pain if you
don't have network access while developing. So, I've changed it so
that rake git:update depends on spec:update. However, if you don't use
the rake git tasks, you'll need to run rake spec:update manually.

I've updated the INSTALL file with directions. Let us know if you are
having any issues with this process.

Thanks,
Brian
Reply all
Reply to author
Forward
0 new messages